一、概述
请求响应:
请求(HttpServletRequest):获取请求数据
响应(HttpServletResponse):设置响应请求
BS架构:Browser/Server,浏览器/服务器架构模式。客户端只需要浏览器,应用程序的逻辑和数据都存储在服务器。(维护方便 体验一般)
CS架构:Client/Server,客户端/服务器架构模式。(开发、维护麻烦 体验不错)
二、请求2.1 Postman
在前后端分离开发模式下,前端技术人员基于”接口文档”,开发前端程序;后端技术人员也基于”接口文档”,开发后端程序。由于前后端分离,对我们后端技术人员来讲,在开发过程中,是没有前端页面的,那我们怎么测试自己所开发的程序呢
方式1:直接使用浏览器。在浏览器中输入地址,测试后端程序。
方式2:使用专业的接口测试工具(就是下面的Postman)
Postman是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件,下载地址:https://www.postman.com/downloads/
2.2 简单参数2.2.1...
一、SpringBootWeb入门1.1 介绍
官网:https://spring.io/
Spring发展到今天已经形成一种开发生态圈,Spring提供了若干个子项目,每个项目用于完成特定的功能。
SpringBoot
Spring Boot 可以帮助我们非常快速的构建应用程序、简化开发、提高效率。
1.2 SpringBootWeb快速入门吧
步骤:
创建springboot工程,并勾选web开发相关依赖
定义HelloController类,添加方法 hello,并添加注解
运行测试
二、HTTP协议2.1 HTTP-概述
HTTP概念:Hyper Text Transfer Protocol,超文本传输协议,规定了浏览器与服务器之间的数据传输的规则
特点:
基于TCP协议:面向连接,安全
基于请求-响应模型的:一个请求对应一次相应
HTTP协议是无状态的协议:对于事物处理没有记忆能力。每次请求-响应都是独立的
缺点:多次请求间不能共享数据
优点:速度快
2.2 HTTP-请求协议
HTTP-请求数据格式
常见请求头代表的含义:
...
一、引言 在2024年央视春晚上,魔术师刘谦的表演《守岁共此时》成为了众多观众热议的焦点。不仅因为其精湛的魔术技巧,更因为节目中主持人尼格买提出现的意外“穿帮”和随后的即兴表演,成为了当晚的笑点和高潮。本文将带您剖析这一魔术表演背后的算法逻辑,带您一探究竟。
二、具体步骤
第一步:任意准备四张牌,随机打乱,不妨设打乱后的四张牌的顺序为:J、Q、K、A
第二步:对半撕开分为 8 张牌,其中一半置于另一半下面,此时牌序为J、Q、K、A、J、Q、K、A,则此时满足:第 n 张牌与第 n+4 张牌相同,即:n = n + 4
第三步:根据个人的名字字数将牌堆顶部相同数量的牌置于最下面,一般人都是 2~4 张,这里假设为三字的姓名,此时牌序为:A、J、Q、K、A、J、Q、K,但往下移动多少张牌并不重要,因为不会改变相同牌的相对顺序,即依然满足:n = n + 4
第四步:拿起最上面三张,插入剩余卡牌中间的任意位置,这里假设插入剩余牌堆的第一张与第二张之间,此时牌序为:K、A、J、Q、A、J、Q、K,这里的牌序可简化看成:K******K
第五步:将最上面的牌藏起来,即藏起来的牌...
一、Maven概述1.1 介绍
Maven:
Maven是apache旗下的一个开源项目,是一款用于管理和构建java项目的工具
Apache Maven是一个项目管理和构建的工具,他基于项目对象模型(POM)的概念,通过一小段描述信息来管理项目的构建
apache:
Apache软件基金会,成立于1999年7月,是目前世界上最大的最受欢迎的开源软件基金会,也是一个专门为支持开源项目而生的非盈利组织
开源项目:https://www.apache.org/index.html#projects-list
Maven作用:
依赖管理:方便快捷的管理项目依赖的资源(jar包),避免版本冲突问题
统一项目结构:提供标准、统一的项目结构
项目构建:标准跨平台(Linux、Windows、MacOS)的自动化项目构建方式
Maven官网:http://maven.apache.org/
Mave模型介绍:
仓库:用于存储资源,管理各种jar包。
本地仓库:自己计算机上的一个目录
中央仓库:由Maven团队维护的全球唯一的。仓库地址:https://repo1.mav...
单元测试概述、Junit框架快速入门
单元测试
就是针对最小的单元(方法),编写测试代码对其进行正确性测试
之前是如何进行单元测试的?存在什么问题?
只能在main方法编写测试代码,去调用其他方法进行测试
无法实现自动化测试。一个方法测试失效,可能影响其他方法的测试
无法得到测试的报告,需要程序员自己去观察测试是否成功
Junit单元测试框架
可以用对方进行测试,他是第三方公司开源出来的(很多开发工具已经集成了Junit框架,比如IDEA)
优点
可以灵活的编写测试代码,可以针对某个方法执行测试,也支持一键完成对全部方法的自动化测试,且各自独立
不需要程序员去分析测试的结果,会自动生成测试报告出来
具体步骤:
将Junit框架的jar包导入到项目中(注意:IDEA继承了Junit框架,不需要我们自己手工导入了)
为需要测试的业务类,定义对应的测试类,并未每个业务方法,编写对应的测试方法(必须:公共、无参、无返回值)
测试方法上必须声明@Test注解,然后在测试方法中,编写代码调用被测试的业务方法进行测试
开始测试:选中测试方法,右键选择“Junit运行”,如果测试...
网络编程
什么是网络编程?
可以让设备中的程序与网络搜索其他设备中的程序进行数据交互(实现网络通信的)
Java提供了哪些网络编程的解决方法?
java.net.*包下提供了网络编程的解决方法
基本的通信架构
基本的通信架构有2种形式:CS架构(Client客户端/Server服务端)、BS架构(Browser浏览器/Server服务端)
无论是CS架构,还是BS架构的软件必须依赖网络编程
网络通信三要素IP地址
IP(Internet Protocol):全称”互联网协议地址“,是分配给上网设备的唯一标识
IP地址有两种形式:
IPv4:由32bit(4字节)组成,点分十进制表示法
IPv6:共128位,号称可以为地球每一粒沙子编号
IPv6分成8段表示,每段每四位编码成一个十六进制位表示,数之间用(:)分开
IP域名:
电脑的DNS服务器会将域名解析成IP地址,然后再使用该IP地址访问对应的服务器
公网IP、内网IP
公网IP:是可以连接互联网的IP地址
内网IP:也叫局域网IP,只能组织机构内部使用
192.168.开头的就...
概述
什么是线程?
线程(Thread)是一个程序内的一条执行流程
程序中如果只有一条执行流程,那这个程序就是单线程的程序
多线程是什么?
多线程是指从软硬件上实现的多条执行流程的技术(多条线程由CPU负责调度执行)
如何在程序中创建多条线程?
Java是通过java.lang.Thread类的对象来代表线程的
多线程的注意事项:
启动线程必须是调用start()方法,不是调用run()方法
不要把主线程任务放在启动子线程之前
多线程的创建方式一:继承Thread类
创建流程:
定义一个子类MyThread继承线程类java.lang.Thread,重写run()方法
在主方法中创建MyThread类的对象
调用线程对象的start()方法启动(启动后还是执行run方法)
方式一优缺点:
优点:代码简单
缺点:线程已经继承Thread,无法继承其他类,不利于功能的扩展
方式二:实现Runnable接口
创建流程:
定义一个线程任务类MyRunnable实现Runnable接口,重写run()方法
在主方法中创建MyRunnable任务对象
把My...
特殊文件
普通文件:普通的属性文件,里面的内容可以随便写,格式随意,如:.txt文件
特殊文件:对格式有特殊要求,如:.xml文件、.properties文件。
为什么要用这些特殊文件?
存储有关系的数据,作为系统的配置文件
作为信息进行传输
这些特殊文件,我们主要学什么?
了解他们的特点、作用
学习使用程序读取它们里面的数据
学习使用程序把数据存储到这些文件里
Properties属性文件
Properties
Properties是一个Map集合(键值对集合),但是我们一般不会当集合使用
核心作用:Properties是用来代表属性文件的,通过Properties可以读写属性文件里的内容
使用Properties对属性文件里的键值对数据进行操作
构造方法:
构造方法
说明
public Properties()
由于构建Properties集合对象(空容器)
使用Properties读取属性文件里的键值对数据:
方法名称
说明
public void load(InputStream is)
通过字节输入流,读取属性文件里的键值...
IO流-字符流FileReader(文件字符输入流)
作用:以内存为基准,可以把文件中的数据以字符的形式读入到内存中去
构造方法:
构造方法
说明
pblic FileReader(File file)
创建字符输入管道与源文件接通
pblic FileReader(String filepath)
创建字符输入管道与源文件接通
常见方法:
方法名称
说明
public int read()
每次读取一个字符返回,如果发现没有数据可读会返回-1
public int read(char[] buffer)
每次读取一个字符数组返回,返回字符数组读取了多少个字符,如果发现没有数据可读会返回-1
FileWriter(文件字符输出流)
作用:以内存为基准,可以把内存中的数据以字符的形式写出到文件中去
构造方法:
构造方法
说明
public FileWriter(File file)
创建字符输出流管道与源文件对象接通
public FileWriter(String filepath)
创建字符输出流管道与源文件对象...
File、IO流概述
File:代表文件
File是java.io包下的类,File类的对象,用于代表当前操作系统的文件(可以是文件、或文件夹)。
File类可以实现获取文件信息(大小、文件名、修改时间)、判断文件类型、创建文件/文件夹、删除文件/文件夹等操作
注意:File类只能对文件本身进行操作,不能读写文件里面存储的数据
IO流:读取文件
用于读写数据的(可以读写文件,或者网络中的数据…)
File创建对象
File类对象构造方法:
构造方法
说明
public File(String pathname)
根据文件路径创建文件对象
public File(String parent, String child)
根据父路径和子路径名字创建文件对象
public File(File parent, String child)
根据父路径对应文件对象和子路径名字创建文件对象
注意:
File对象既可以代表文件,也可以代表文件夹。
File封装的对象仅仅是一个路径名,这个路径可以是存在的,也允许是不存在的。
...